package com.pmc.prototipo.services;

import com.pmc.prototipo.entities.Entropia;
import com.pmc.prototipo.entities.TipoUsuario;
import com.pmc.prototipo.entities.Usuario;
import com.pmc.prototipo.entities.ValueEntropia;
import com.pmc.prototipo.excepciones.InvalidOperationException;
import java.util.ArrayList;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 * Clase que implementa los servicios prestados al usuario para la adminisitracion de sus datos
 * @author German Sotelo
 */
@Stateless
public class EntropiaServices implements IEntropiaServicesLocal{

    @EJB
    private IPersistenceServices persistanceServices;
    
    public void crearEntropia(Usuario usuario, Entropia entropia) throws InvalidDataException, InvalidOperationException {
        ValueEntropia valEntropia = new ValueEntropia();
        valEntropia.setUsuario(usuario);
        //TODO
        persistanceServices.create(valEntropia);
    }

    public Entropia newEntropia(double peso, double altura, double edad, boolean esBebe, char embarazo, String estadoEnergetico, String sexo, double temperatura) throws Exception {
        Entropia u = new Entropia(peso, altura, edad, esBebe, embarazo, estadoEnergetico, sexo, temperatura);
        return u;
    }

    public ArrayList<ValueEntropia> findAll() {
        return (ArrayList<ValueEntropia>) persistanceServices.findAll(ValueEntropia.class);
    }

    public void delete(String user) throws InvalidOperationException {
        System.out.println("delete session bean");
        Usuario use2 = (Usuario)persistanceServices.findById(Usuario.class,user);
        System.out.println(use2.getNombreCompleto());
        persistanceServices.delete(use2);
    }

    public void updateUsuario(Usuario usuario) throws InvalidDataException {
        if (usuario.getDocumento() == null || usuario.getDocumento().isEmpty()) {
            throw new InvalidDataException("Debe ingresar su documento");
        }
        if (usuario.getNombreCompleto() == null || usuario.getNombreCompleto().isEmpty()) {
            throw new InvalidDataException("Debe ingresar su nombre");
        }
        if (usuario.getTelefonoResidencia() == null || usuario.getTelefonoResidencia().isEmpty()) {
            throw new InvalidDataException("Debe ingresar su telefono de residencia");
        }
        if (usuario.getDireccion() == null || usuario.getDireccion().isEmpty()) {
            throw new InvalidDataException("Debe ingresar su dirección de residencia");
        }
        if (usuario.getCiudadResidencia() == null || usuario.getCiudadResidencia().isEmpty()) {
            throw new InvalidDataException("Debe ingresar una ciudad de residencia");
        }
        if (usuario.getDepartamento() == null || usuario.getDepartamento().isEmpty()) {
            throw new InvalidDataException("Debe ingresar su departamento de residencia");
        }
        if (usuario.getPais() == null || usuario.getPais().isEmpty()) {
            throw new InvalidDataException("Debe ingresar su pais de residencia");
        }
        if (usuario.getEmail() == null || usuario.getEmail().isEmpty()) {
            throw new InvalidDataException("Debe ingresar su email");
        }
        if (usuario.getPwd() == null || usuario.getPwd().isEmpty()) {
            throw new InvalidDataException("Debe ingresar su email");
        }
        persistanceServices.update(usuario);
    }





}
